#pragma once

#include "DLOperatorTerm.hpp"
#include "OperatorNames.hpp"

namespace terms {
	namespace dl {
		extern const char DL_INTERSECTION_OPERATOR_NAME[];

        template <typename Term, typename L=std::string, typename I=std::string, typename C=std::string, typename R=std::string>
        class DLIntersection
            : public virtual DLTypedOperatorTerm<OperatorNames::INTERSECTION, TermListType::UNIQUE, Term, L, I, C, R>
        {
        public:
            using DLTypedOperatorTerm<OperatorNames::INTERSECTION, TermListType::UNIQUE, Term, L, I, C, R>::DLOperatorTerm;
        };
}
}

